package hos.ui.helper;

import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.widget.TextView;

import hos.java.color.ColorConfig;
import hos.ui.R;

/**
 * <p>Title: ShapeHelper </p>
 * <p>Description:  </p>
 * <p>Company: www.mapuni.com </p>
 *
 * @author : 蔡俊峰
 * @version : 1.0
 * @date : 2024-06-26 14:59
 */
public class TextColorHelper {

    public static ColorStateList loadFromAttributes(View view, AttributeSet attrs) {
        TypedArray typedArray =
                view.getContext().obtainStyledAttributes(attrs, R.styleable.TextColor);
        try {
            ColorStateList textColor = typedArray.getColorStateList(R.styleable.TextColor_android_textColor);
            if (textColor != null) {
                if (textColor.isStateful()) {
                    return textColor;
                }
            }
            ColorStateList textColorSelected = typedArray.getColorStateList(R.styleable.TextColor_textColorSelected);
            if (textColorSelected == null) {
                return textColor;
            }
            int defaultColor = ColorConfig.black87;
            if (textColor != null) {
                defaultColor = textColor.getDefaultColor();
            }
            return new ColorStateList(
                    // 定义不同状态的颜色
                    new int[][]{
                            // 选中状态
                            new int[]{android.R.attr.state_selected},
                            // 按下状态
                            new int[]{android.R.attr.state_pressed},
                            // 选中状态
                            new int[]{android.R.attr.state_checked},
                            // 焦点状态
                            new int[]{android.R.attr.state_focused},
                            // 默认状态
                            new int[]{android.R.attr.state_enabled},
                            // 默认状态
                            new int[]{},
                    },
                    // 对应的颜色
                    new int[]{
                            textColorSelected.getDefaultColor(),  // 按下时的颜色
                            textColorSelected.getDefaultColor(), // 选中时的颜色
                            textColorSelected.getDefaultColor(), // 选中时的颜色
                            textColorSelected.getDefaultColor(),  // 焦点时的颜色
                            defaultColor, // 默认颜色
                            defaultColor, // 默认颜色
                    }
            );
        } finally {
            typedArray.recycle();
        }
    }
}
